# -*- encoding: utf-8 -*-
"""

PyCharm 函数的作用域.py
2024年10月16日23时02分
by wenyang

"""
# 在python中的作用域分为两种一种是全局作用域 一种是局部作用域
# 全局作用域就是在函数外部定义的变量
# 局部作用域就是在函数内部定义的变量
# 在python中的作用域是可以嵌套的
# 在python中的作用域的查找顺序是LEGB
# L 本地作用域
# E 闭包函数外的函数中
# G 全局作用域
# B 内建作用域
# 在python中的作用域的查找顺序是从内到外的，如果在局部作用域中没有找到变量，则会向上查找，直到全局作用域中查找。
# 闭包函数外的函数中查找不到变量，则会向上查找，直到全局作用域中查找。
# 内建作用域中查找不到变量，则会报错
a = 10
c = 10
def bar(a, b):
    # 内部变量会覆盖外部的变量
    print(a)
    print(c)
    return a + b

def main():
    print(bar(20, 20))


if __name__ == "__main__":
    main()
